import numpy as np

# 定义函数
def f(x):
    return 3 * np.cbrt(x**2) - 2*x

# 区间端点
a = -1
b = 0.5

# 生成区间内的点
x_values = np.linspace(a, b, 100)
y_values = f(x_values)

# 绘制函数图像
import matplotlib.pyplot as plt
plt.plot(x_values, y_values)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Function y = 3√[3]{x^2} - 2x on [-1, 0.5]')
plt.show()

# 寻找临界点：包括导数为零的点（驻点）和导数不存在的点
# 由于导数 f'(x) = 2*x^(-1/3) - 2，令导数为零得 x=1（不在区间内），导数不存在的点为 x=0
critical_points = [a, b, 0]  # 包括端点和 x=0

y_endpoints = [f(x) for x in critical_points]

max_index = np.argmax(y_endpoints)
min_index = np.argmin(y_endpoints)

print(f"函数在区间 [{a}, {b}] 上的最大值为 {y_endpoints[max_index]}，在 x = {critical_points[max_index]} 处取得。")
print(f"函数在区间 [{a}, {b}] 上的最小值为 {y_endpoints[min_index]}，在 x = {critical_points[min_index]} 处取得。")